package soccerscope.training.conditions;

import soccerscope.model.ClientScene;
import soccerscope.model.WorldModel;

public class CycleCondition
    extends GameCondition {

  private int cycles  = 10;

  private int current = 0;

  public CycleCondition() {

    super();
  }

  public void setCycles(int i) {

    this.cycles = Math.abs(i);
    System.out.println("Cycles: " + this.cycles);
  }

  public int getCycles() {

    return this.cycles;
  }

  /**
   * This method ovverrides the isTrue() method from gamecondition to specifiy
   * the behaviour of the cycle-condition.
   */
  @Override
  public boolean isTrue(ClientScene scene) {

    this.current++;
    if (this.current >= this.cycles) {
      System.out
          .println("" + WorldModel.getSceneSet().lastScene().time + " Cycle condition satisfied");
      return true;
    }
    return false;
  }

  /**
   * Sets the current-counter (cycle-counter) to zero
   */
  @Override
  public void resetCondition() {

    this.current = 0;
  }

  public int getStatIndex() {

    return 1;
  }

}
